RS40B - uživatelský manuál


2.6.7 - Uživatelské rozhraní

Uživatelské rozhraní slouží ke komunikaci s uživatelem, zobrazování zpráv a zadávání parametrů důležitých pro chod aplikace. Uživatelské rozhraní nabízí k dispozici 14 řádků o velikosti 40 znaků. Poslední řádek může být použit jako menu, kterému mohou být přiřazeny klávesy.
Uživatelské menu je přístupné navigační klávesou "User" nebo může být automaticky zobrazeno příkazem userPage(), který nemá žádnou návratovou hodnotu. Parametr může být typu bool nebo nemusí být zadán vůbec. Pokud je parametr true, uživatelské menu nelze vypnout dokud není volána instrukce userPage(false).

Zobrazování zpráv a textů

Jak už jsme si ukázaly dříve, pro zobrazení řetězce jsou k dispozici dvě instrukce. Instrukce putln po té co vypíše řetězec znaků na obrazovku na konci textu zalomí řádek. Tedy při dalším výpisu na obrazovku se bude začínat opět od nového řádku. Kdežto instrukce put pouze vypíše text na obrazovku. Obě instrukce mohou mít parametr typu string nebo num. Název uživatelského rozhraní může být nastaven instrukcí title, která zobrazí název aplikace ještě před prvním řádkem.

Příklad
01:title("Moje uzivatelske rozhrani")
02:putln("Dnes si ukazeme vypis na obrazovku.")
03:put("Tento text se zobrazi na dalsim radku.")
04:putln("Ale ted pokracujeme na stejnem radku")
05:put(2)
06:put(4)

Výstup na obrazovku

==Moje uzivatelske rozhrani=============
Dnes si ukazeme vypis na obrazovku.
Tento text se zobrazi na dalsim radku.Al
e ted pokracujeme na stejnem radku
24

Jak je vydět na výstupu z programu, na druhém řádku má být zobrazeno více než 40 znaků proto je instrukce na řádku 4 automaticky zalomena na další řádek. Také čísla 2 a 4 budou zobrazena jako 24 protože jsme použily instrukci put, která za sebou nezalamuje řádek.

Zprávy

Pro zobrazení varovné zprávy, lze použít instrukci popUpMsg, která zobrazí varovné okno na současné stránce na MCP displeji, které musí uživatel potvrdit klávesou "Ok" nebo "Esc". Pro zápis do záznamníku událostí (events logger) existuje instrukce logMsg, která zapíše událost do zásobníku událostí.

Příklad

Lokální data

num i


01:title("Moje uzivatelske rozhrani")
02:putln("Zadejte cislo od 0 do 10:")
03:get(i)

04:ifi>=0 and i<=10
05:  put("Zadaly jste cislo ")
06:  putln(i)
07:else
08:  logMsg("Number i is out of range!")
09:  popUpMsg("Chyba: Zadane cislo je mimo pozadovany rozsah.")
10:endIf

Zde jsme si vytvořily jednoduchý příklad, který pracuje s instrukcemi pro zobrazení varovných zpráv a záposem so záznamníku událostí.
Na řádku 3, máme instrukci get, která načte číslo z klávesnice. Na dalším řádku toto číslo testujeme zda je v požadovaném rozsahu 0-10. Pokud je číslo mimo tento rozsah, vykoná se podmínka else, ve které jsou instrukce logMsg a popUpMsg. Instrukce logMsg, zapíše událost do zásobníku událostí a instrukce popUpMsg upozorní uživatele, že požadované číslo je mimo rozsah.

Čtení dat z klávesnice

Pro čtení dat z klávesnice slouží zejména instrukce get, která má jako parametr číslo nebo řetězec, do kterého uloží vstup z klávesnice. Jako návratovou hodnotu vrací číslo klávesy, kterou bylo potvrzeno zadávání. To je možné klávesou "Enter" nebo "Esc". Klávesa "Enter" potvrzuje zadání a klávesa "Esc" ruší zadávání a jako parametr neuloží nic.

Příklad

Lokální data

num i
string str


do
  i = get(str)
until(i == 270)

Smyčka do...until bude probíhat tak dlouho dokud uživatel nepovtrdí výběr klávesou "Enter", jejíž číselná hodnote je rovna 270. Pokud uživatel stiskne "Esc", smyčka se provede znova.

Další instrukcí pro čtení z klávesnice je getKey, která nemá žádný parametr. Návratová hodnota této instrukce je číslo klávesy, která byla naposledy stištěna. Tato instrukce nazobrazuje na obrazovce žádný výstup.

Příklad

Lokální data

num i


putln("Stisknete libovolnou klavesu: ")
i = getKey()
put("Cislo stisknute klavesi je: ")
puln(i)

Test stisknutí klávesy

Pro testování, zda je stisknuta některá klávesa, slouží instrukce isKeyPressed (num nCode), která má jako parametr číslo klávesy, která se testuje zda je stisknuta. Návratová hodnota je typu bool. Pokud je klávesa stisknuta, je návratová hodnota true, jinak vrací false.

Syntaxe
num isKeyPressed(<num nCode>)

Pozice kurzoru

Příkazy pro výpis na obrazovku automaticky posunují kurzor na pozici, která ukazuje až za text, který vypsaly na obrazovku. Někdy je však potřeba změnit manuálně pozici kurzoru. K tomu slouží instrukce gotoxy(num nX, num nY), která nastaví kurzor na požadovanou pozici. Parametr nY určuje číslo řádku a nX určuje pozici na řádku. Výchozí hodnota je (0,0) a maximální je (39,14). Tato instrukce nemá žádnou návratovou hodnotu.

Syntaxe
gotoxy(<num nX>, <num nY>)

Další, velice užitečnou a často používanou instrukcí je cls(). Tato instrukce nemá žádný prarametr ani žádnou návratovou hodnotu. Její funkce je ta, že smaže celou obrazovku a nastaví kurzor na pozici (0,0). Pokud vaše aplikace vypisuje nějaká data do uživatelského rozhraní, je lepší použíte tuto instrukci ještě před prvním výpisem na obrazovku, protože se může stát, že na obrazovce jsou stále zobrazeny nějaké znaky a kurzor není na výchozí pozici.